{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Tutorial 6\n",
    "\n",
    "April 27"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Importing the libraries \n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from math import exp\n",
    "from numpy.linalg import inv\n",
    "from sklearn.linear_model import Ridge\n",
    "from sklearn.preprocessing import PolynomialFeatures\n",
    "from sklearn.pipeline import make_pipeline"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## General Linear Models"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Ex 1a"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "def f1(x):\n",
    "    return(x+2*np.sin(x))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[0.0, 3.2822400161197343, 8.911957778221261, 21.825890501455255]"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "xs = [0, 3 ,10, 20]\n",
    "y =[f1(x) for x in xs]\n",
    "y"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "def least_square_estimator(X, y):\n",
    "    step1 = np.transpose(X) * X\n",
    "    leftpart = inv(step1)\n",
    "    rightpart = np.transpose(X)* np.transpose(y)\n",
    "    return(leftpart * rightpart)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "estimate :  [[0.99921329]] [[1.98915035]]\n"
     ]
    }
   ],
   "source": [
    "X= np.matrix([[0,0],[3,np.sin(3)],[10, np.sin(10)],[20,np.sin(20)]])\n",
    "y = np.matrix([[0,3.28,8.91,21.8]])\n",
    "a, b = least_square_estimator(X, y)\n",
    "print('estimate : ',a,b)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "matrix([[ 0.        ,  3.27834878,  8.9099931 , 21.80025113]])"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "yhat = a*xs+b*np.sin(xs)\n",
    "yhat"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "MSE: 6.974118553002666e-07\n"
     ]
    }
   ],
   "source": [
    "mse = ((np.array(yhat) - np.array(y))**2).mean()\n",
    "print('MSE:', mse)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Ex 1b"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "def f2(x):\n",
    "    return(10-1*np.log(x))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[10.0, 8.90138771133189, 7.697414907005954, 7.00426772644601]"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "xs = [1, 3, 10, 20]\n",
    "y =[f2(x) for x in xs]\n",
    "y"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "estimate :  [[10.00028179]] [[-1.00065617]]\n"
     ]
    }
   ],
   "source": [
    "X= np.matrix([[1,np.log(1)],[1,np.log(3)],[1, np.log(10)],[1,np.log(20)]])\n",
    "y = np.matrix([[10, 8.9, 7.7, 7]])\n",
    "a,b = least_square_estimator(X, y)\n",
    "print('estimate : ',a,b)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "MSE: 5.550849923661116e-06\n"
     ]
    }
   ],
   "source": [
    "yhat = a+b*np.log(xs)\n",
    "mse = ((np.array(yhat) - np.array(y))**2).mean()\n",
    "print('MSE:', mse)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Ex 1c"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "def f3(x):\n",
    "    return(np.sin(2*np.pi*x) - 3 *np.cos(2*np.pi*x) )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "xs = [0, 1]\n",
    "y =[f3(x) for x in xs]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "estimate :  [[-1.63890747]] [[-3.]]\n"
     ]
    }
   ],
   "source": [
    "X= np.matrix([[np.sin(0), np.cos(0)],[np.sin(1),np.cos(1)]])\n",
    "y = np.matrix([[-3.0,-3]])\n",
    "a,b = least_square_estimator(X, y)\n",
    "print('estimate : ',a,b)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "MSE: 9.860761315262648e-32\n"
     ]
    }
   ],
   "source": [
    "yhat = [a*np.sin(2*np.pi*i) +b *np.cos(2*np.pi*i) for i in xs]\n",
    "mse = ((np.array(yhat) - np.array(y))**2).mean()\n",
    "print('MSE:', mse)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Exercice 2"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Source \n",
    "https://scikit-learn.org/stable/auto_examples/linear_model/plot_polynomial_interpolation.html"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "def f(x):\n",
    "    \"\"\" function to approximate by polynomial interpolation\"\"\"\n",
    "    return x + 2*np.sin(x)\n",
    "\n",
    "x_plot = np.linspace(0, 10, 100)\n",
    "x = np.linspace(0, 10, 100)\n",
    "rng = np.random.RandomState(0)\n",
    "rng.shuffle(x)\n",
    "x = np.sort(x[:20])\n",
    "y = f(x)\n",
    "plt.scatter(x, y);"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "# create matrix versions of these arrays\n",
    "X = x[:, np.newaxis]\n",
    "X_plot = x_plot[:, np.newaxis]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAD8CAYAAABn919SAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzs3Xd4VEXbwOHf2ZLeCySEACH0FmqQKlVBqQpiQUEUFBT1e0XsCiqviFiwvCpSBKVJbwIiSAuQ0GtogRQS0nuyfef74wCCtJAOzH1dXLvJnp0zG/Rh8szMM4oQAkmSJOnOp6noDkiSJEmlQwZ0SZKku4QM6JIkSXcJGdAlSZLuEjKgS5Ik3SVkQJckSbpLyIAuSZJ0l5ABXZIk6S4hA7okSdJdQleeN/Pz8xO1atUqz1tKkiTd8fbt25cuhPC/1XXlGtBr1arF3r17y/OWkiRJdzxFUeKKcp1MuUiSJN0lZECXJEm6S8iALkmSdJeQAV2SJOkuIQO6JEnSXUIGdEmSpLuEDOiSJEllzGi1lst9ZECXJEkqQytPnKDON99wIj29zO8lA7okSVIZEELw5a5dDFy0iMS8PH49dKjM71muO0UlSZJKmxBgNIKTEyhKRfdGZbHZGLtuHT/t2wfApG7deLtjxzK/rwzokiTdUUwmWL0a/vgDTpxQ/2RlgYsLVKsG1atDnz4wdChUrVr+/cs2GhmyZAl/xsTgqNUyZ8AAhjRpUi73VoQQ5XIjgNatWwtZy0WSpOKIiYFvvoHffoPMzKtf02rBZrv6ezodPPwwTJgAzZuXTx/PZmXRZ/58otPT8XdxYeXjj9MuOLjE7SqKsk8I0fpW18kcuiRJlVp+PrzzDjRqpAb0zExo1gymToXNmyExESwWyMmB6GhYvBj69lVTMStXQps28MknUNYLTXYmJNB2xgyi09Np7O9P1MiRpRLMb4ccoUuSVGmtWAEvv6wGbYCnn4bXXoMWLW6dL09OhkmT4Lvv1K/btoV58yA0tPT7Oe/wYUasWoXZZuPB0FAWDRqEp5MTAPnmZA4kz+K+oNfQa12K1b4coUuSdMeyWOD112HgQDWYt24Nu3bB3LnQsmXRJj8DAuDbb2HjRjWvHhkJnTvDmTOl10+7ELy/eTNDly/HbLPxUps2rHnySTydnLALC4dT5rL4+CBOpC/lQPKM0rvxDchJUUmSKpWkJBgyBHbsUPPgU6bAq6+CppjDzx494MgRGDAAtm6Frl1h2zYICSlZPwstFoatWMGS48fRKgrTevXipfBwAJLzD7Aj/lOyjDEA1PLqRiP/x0p2wyKQAV2SpEojOhp69lRH5dWqqfnw9u1L3q6XF6xZA716QUSEGtS3boWaNYvX3vncXPovXMj+CxfwcHRk8eDBPBAaitGaRWTiN5zKWAWAu0MQ7YPHU8Oz7JcsggzokiRVEnv3qgE3IwM6doSlS6FKldJr381NXer4wANq+qVvX4iKUtev3449iYn0X7iQC/n51Pb2Zs0TT9DAz5eT6SuJTJyGyZaDRtETVnUYzQOeRae5zRuUgAzokiRVuK1b1QCblwcPPaSOzF2KN394Ux4esH69uvLlyBEYP15dOVNUC44cYcSqVRitVu6vWZOljz2Golxgzem3Sc4/AEA193A6BL+Fl1Mxh/8lIAO6JEkVaudONYgXFsLjj8OcOeDgUHb38/KCBQvUVM6336oj9j59bv4euxB8+PfffLJ9OwDPt2jBtN7dOZY6i0MpcxHYcNb5cF/1/yPUuzdKBW1ZlQFdkqQKc/iwuvmnsBCGDYOZM9VNQmWtdWt1SeP48fDss2o/AgOvf22+2cywFStYFh2NRlH48oEHeKShYNXJJ8gzJwIKDf0epU21l3HUeZR9529CBnRJkirEmTPq6Dg7W12eOGNG+QTzS15/XV3SuHEjPP88rF177TWx2dn0X7iQwykpeDo6Mv+RHjjpl7M+Zj0APk516FjjXaq6NSu/jt+EDOiSJJW71FQ1mKekQPfuMH++ukSxPGk0anqnYUN1snT9enVS9pLtcXE88vvvpBcWUs/Xh5/6eBOf8wam/Fy0iiOtAl+gadUn0Sj68u34TdxyZaeiKLMURUlVFOXoFd/zURRlo6Iopy8+epdtNyVJuluYTPDII3DunJr6WLHi6pUmdiEoMNrJzLNxIdPG+QwrGXk2Ck127Pard7YnJOQwduwfhIf/zNixf5CQkHNbfQkMhPfeU5+PG/dPeYCf9u6l29y5pBcWMqihN5N7HOR05leYbLlU92jHoEaLCQsYVqmCORRh67+iKJ2BfGCuEKLJxe9NATKFEJMVRXkL8BZCvHmrm8mt/5J0bxMCRoyAX36BoCCIjBLY9Daiz1uIS7ORnG0jJduG+QZ1V7Qa8PfQUNVLi6vOytQP1xN3PIGCXAN6vQY3NwcOHXqR4GDPIvfJZFJH6efOwff/s3O0xjp+2LsXncbGxC5Gqrptwy4sOOm8aVd9HKHeD5b7pGdRt/4XqZaLoii1gDVXBPSTQBchxAVFUQKBLUKI+rdqRwZ0Sbq3ff65OhHp7Cx440sDuQ4m8o3XxiBnBwVHPTjpFRRFwWgWGMx2jJZr2xR2QWZSBvFHznH+6FkG9anJd98+dFv9WrIEBg8GvbsBy0tfUz8olXHtzyBIAqCeb3/aBr2Kk67o/1CUpqIG9OJmraoKIS4AXAzqpbj8X5Kku0VCQg5TpkQQGZlIYFALVq9sBSi0H5pPkt0CRvBx09AoWE+dQB2B3loCvDS4OF4/G2yyCFJz1JH8x5/vQ+PuRKsmKXRte4QqXWLxc47DS59A7rFxuDpY0WqsoPEGXVXQBYBjE3AKB6eWoPlnoXtoh2QcQ2yYzgXR7HRDXh68FIHAw7EGnWq8QzX3NuX0EyuZMp+GUBRlFDAKoEaNGmV9O0mSKomEhBzCwn7EZIVardqwYWMLhFBo8ZCBVh1ttG/gRNu6jlT10hQ5heGoVwj2iCNYWcrUwb9R3fcELs7XGbYD2C7+4RyY/v2iFpw7gscQViQ24smVO6g+WEvMlLc4sfZBCsZ8T4f6A2gR+Dw6jWPxfwjlrLgBPUVRlMArUi6pN7pQCDEdmA5qyqWY95Mk6Q7z2ZQIAhqH0rx3OzbNqIKpQItfjTzCGx/m06fbo7mdPLQtC3LmQM5cMKk7MutVV186ec6PnQeqcybejwsZVRj77rOczfbgcDxYbBpcdVnU9EmnbUg6tb2OoDVFgekIGLaCYSt9NAoRD1YhTufFezs6cWxnB9K2LaBNN78y+KmUreIG9FXAMGDyxceVpdYjSZLueIkZVjJ96tDhCT92L3Eh9ZwejS6f9PgfObDVC43SoWgNGY9A1jTInQ/CoH5P4w5ufcFtIInZLfjuj5NERSUSHh7ExC87EBzsSQugl9FOxAkTmw6b2BpnZ2sceLkq9G7pTJMaWczZOYH2nn9wn3ciLdxSaEEKuhdm0XdnB2b+6Mf7b91+nZeKVpRVLguALoAfkAJ8CKwAfgdqAPHAYCFE5o3auEROikrS3c0uBH8dMrJstwGbHU7vtrP1Vz/U3Mcv6PVJvPBCK7691aSl8RCkfwT5y/75nktP8B4Nrr3hNgpeWW2CfWfNrN9v5HyGjUxrOgesv9Ov0Q4aV0nDGQvtXHXU5jTY82n56H4ORrdgxk95PDfKvVg/h9JWqqtcSosM6JJ098oz2Jm9qYAj8WpOO9RNwzvDHRHCGfgTvT7y1ssKzbGQ9ibk/a5+rTiC50jwGQsO9UrUP7sQTPn7IJvOf0u/Bkdx0tmwWt0Idf8/etTvh0bkQuaXzJsTz9A3fqFh6EmORu1C4z2saCdqlKGyXuUiSZJ02bkUK/9bn0d2gcDVUeGZLq6Mf8EBISA4OI2AgDjatm3F+PEdrh/M7fmQ8SlkfgHCBIoTeL0APuNBX63E/bPa7UzYsgCrfTaPNckCIC+nE6fPjGW/xZv9x/O5vy7M//k+zp91IsAvmeiY+vyx6HX69P8bAn64alVMZSUDuiRJxXJpSeKJZEGt+8NBo6VOoI6RPVyZ9ZOWTZvA3x+iovwJCBh544byVkPKaLBePDjU4ynwnwz66qXSz9SCXD7Z9i4N/Haj19oRwpOetd8n2KMLO/xNrNpjICbFSkwKxBR4E7XTEUPuYSCAqbPH06fr/epEbNCSEv+WUNbkmaKSJN22S0sSd5y2U6trO9BoObf3BENa2ok7o+Wdd9TrZs9Wz/a8LmsqJD4Oif3UYO7UGmrugmq/lVow3x63nZ/2PULTqjvRa+14OHZnWNhKQry7otMqdGnixKSnvNCmJ2KzWAltXZ9BHwylcTcBmNi6pzMRBzupq2Jiw6Fwe6n0q6zIEbokSbftsykRNOzRhkZdmgMQtTyC6K0HmeKUy/btvbBY4KWX1NK415W3EpKfB1s6KC7gPwm8x4JSOuUWbXYzvxz8BIv9DwLcBHkmd7qFfEjzgK7XXOvsoLB/zW6iz+YTPqA9tVvWpe3ANuRnmDl3wJEewz9m8bQx9Ln/OCQ8oI7U3W70wSqWHKFLknRb7EKQqPjTqEtzbFYbm2as4/Bf+7FY7KxYEcjRo1C3rnq487VvLoDkFyBxgBrMXbpDyFHwea3Ugvn5nAN8v6cfdtaiKIKU/LaMarnqusH8krZtgzDl5rN55nrWfr2MzMR0Gt2vLhgRunaMmPQiO489CMII5/tDzrxS6WtpkwFdkqQis9sFc/8uwK9BKDaLlY3T13LuwBkAtNoaXLjQDI0G5s69zhFyxiMQ2wqyp4PiAFW+guA/wSGkVPpmtRv46+xnrD0zEmd9Gin5bmiVN3mv8/9wc7z5wRPjx3fAzc0BvV7DhdOJLJ+8kLP7N+HmY8VU4EDLvk8zZfMEMjWvAjbsiU8za9rbt13dsazJgC5JUpEIIfhtWyERJ8zoNLDztw2knEoAQKdzRIgBgMKbb8J99/3rzTm/QlxbMJ8Eh8ZQc8/FUXnphKAL+Qf49fAgzmX/Dgh2JjTmgdBfeL7lY0V6f3CwJ4cOvcgLL7SiShUXFATR2w5jyNsFwJkoZ/wb1+PVFW/w7cohaDSCod0+59XnX69UQV2uQ5ck6YauLK7Vss992PyCcNDBKw+742IvZMqUCKKiEjEae3D4cAjNmkFUFDheKn8izJDyKmT/qH7tMQwC/ldqSwAtNgNRSd9yLPV3FEWQmOvOifQ+fPfQGPyKecr0pQnf/HwzFos78BqKYuWpD8/j5O8BCPoF/B99G/1KfqEDP6z9jDfef61UPs+NyI1FkiSVyJWBreH9zQkf2AG7zc5T7XR0a+11+bodO6BzZ/UEoD17oEWLiy9YUyHxUTDsUDcIVf0WPJ8vtU06SXl72BL7EQWWJGx2hXVn6hJWdQQf3t8draZkI/9L/5BFRSWSmDiQxEQ/atXahsbnPOEDO+Du48qzjcbQLmAx2flueDU7BA61S+VzXY/cWCRJUolMmRJBfr6ZWq3qET6wA8Iu2DHvL1xOedCttbp132CA555TD654660rgrnxoDp5aI0HXRAErQDnW8ajIjHbCohKnEZ0+lIAEnI8WHK8LVN6jqBPvdJZJx4c7Hm5PMHcueoB1kZjEzKObCXuyDmadmuO1fQFbuGZNPXdRObJAVBzJz4ebqVy/+KSAV2SpOuKjEzEt2YAHZ/oBsCuJds4FXkSL/HPzs0PP4RTp6BRI3j//YvfzFsNSY+DKASntlB9OegCS6VPiblRbIv/iHzzBax2hbWn6pFS0Im1Tz5OiHfZnIT56KMwZgwkJ/vg4eGHwZDOwQ17idlzgozB45g+KpaqLkeIPPAscbpfeLCFM54uFTM9KQO6JEnX1aZjKPUDG6DVaTmy6QDHtx5Gr9cQHh4EqOmVL75QUy2zZl3Mm2d9DymvAHbwGAoBP99WIa0bMdvyiUz8hhMXR+Vx2Z78crAFD9ftwpLHeuNUhidMu7rCQw/B4sXw2mvDycz8+3J1x/Hj26F1WoolrQNtqy7h7KmWvP3rC3Rq5MiDzZ3wcS+dpZhFJQO6JEnXKDDacQ9rjrkAEo7FErU84vKZnePHd8BiUVMtdju8/jq0DbdD6puQOVVtwG8C+H5QKvny87m72R7/MfnmZGx2DatO1mNbXAP+93A/ngkLK3H7RTFwoBrQt2xxZuvWf1eKDAPHWZA0hCF13yc2tyWbj7Rh6zETrUId6NHMiZCq5RNq5aSoJElXsdsF36zN51iChSrukLM3ij27Ey6OSNXiWp9+Cu+8A7Vrw5HDZlxyhkPuAkAHgTPAc1iJ+6GOyqdxIl0toRuf482sA2G4OYSwZPBgmlatWuJ7FFVOjlqXxmaD5GT1+TVS/gNZX2HR1uHX2B3sPqPnUngNqaqlb2tnmtZ0KNb95aSoJEnFsnqvgWMJFtycFP4zwAPfp3td9frp0zBxovr8px8MuGQOhIINoHGDoOXg2qPEfbhyVG4XWlacqMefMaEMatSUn/v2xcOxfI+F8/SE7t1h/XpYtUr97eQa/p9C4V/oTUcY0XQi/e/7lr+Pmth+3MS5FBvZBfYy76cM6JIkXXYo1syavUYUBUb2dMP3XzlgIWDUKDCZYNgzJnrU6woFkaD1h+B14NSqRPf/96g8tcCf/+1pTFqBF9/0epAxbdoU+fzR0jZggBrQly+/QUDXOELgrxDbBrJ/wNetL4Pa9aZva2eiTpsIr1v2/wjJnaKSJAGQlmNj1qYCAPqHO9MoWH/NNbNmwZYt4O9v54tXe4AxEnQ1oeaOEgfzxNxIlkYPuRjMtaw73YQP/m6Lg7YGESNG8FJ4eIUFc4D+/dUpgY0bIS/vBhc5hYH/J+rzCyPAloGjXqFTIycc9WXfdxnQJUnCahP89Gc+hSZBWC09vVteuzIlNRXeeEN9/vU7b+DrsgMcGkDNiBLVCTfbCtgR/1/+ODOGfHMyBks1JmzpxPITtelXvxH7R42iTVBQsdsvLQEB0K4dmM2wbt1NLvR5HZw7gS0ZUt8qt/6BDOiSJAHLdxuIS7Ph665hRHdXNNcZCb/+OmRlwQMdt/HEg1+CYxjU2Ar64gfbpLw9LI1+nOj0pSjoiEpsw382tCStwIuvH3yQZY89hrezc0k+WqkaOFB9XL78JhcpWgiYDughZwYU7iyPrgEyoEvSPe9ovJk/DxnRKDCypysujteGhb/+gt9+AydHIz98MBzFuS3U+Bt0VYp1T4vNQETCZ6w9/SL55iS0Sk2m7uzKjP2BBHv6sGPECF69774KTbFcz6WAvnatOo9wQ44NwHe8+jxlNAhrmfcNZECXpHtabqH9ct68X7gzoQHX5s0NBhj9ohmAD1+aQO161dSyt9ri7cy8kLefpdFDOJ72OwpaknK7Mmp1U05mOPNIw4YceOEFwitBiuV6QkOhcWM1h77zVgNv33dBHwKmw5D1bbn0TwZ0SbpHCSGYvbmAPIOgfpCO3i2uv6Pzvx9ncCbGgSZ1j/D66Eiovg60N68vfj1Wu4FdCVNZc3oUeeZEXPW1WXC0PxO2uqPV6Pm2d2+WDB6Ml1PJd5aWpQceUB83brzFhRpntSAZQPoHYDlfpv0CGdAl6Z617biJo/EWXBwVnuvuhkZzbXoj+lAcn011B+CnyT+ir70atO63fa+U/EMsjX6So2kLUNCg0JcX14Sx+ZyVuj4+7H7uOV6u4FUsRdWzp/p4y4AO6lF1bgPBng+ZX5Rpv0CuQ5eke1Jqjo3FEYUADO3sgrfbtWM7YTrL6FEpWCw1GfXEKtoPmAIa19u6j9VuYl/SDxxO/Q0QeDrW5q+z9/Pz/gzAxtBmzfjfQw/hXs4bhUqic2dwcIB9+yAjA3x9b/GGql+Dc1vw+b8y75scoUvSPcZuV1MtJiu0qeNAm+tteLHEMXfad2yNaoe/bxafftPttoN5asFRlkc/yeHUX1FQqOIyiPc2t+fn/Rm46vXMGTCAXwcOvKOCOajFujp0UDdZbdpUhDfoa4Dvm+qxe2VMBnRJusdsPGTkzAUrni4KT3a+zqk+lkQyDj3CuMlvA/DFF074+BW9zrfNbmZP4nesOvks2aZYPB1rkW18jUGLrZzOzKV5QAD7X3ih3AprlYXbSruUI5lykaR7SHKWjRVRBgCGdXXFzelfYzprKiT04K3P/kN6lj9d7rcy9JmirwNPL4xmS+yHZBljAIXaXkOYstOfP2PUg6Rfa9uWyT164FiG5W7LwwMPqMXJNm5UR+qVJfVfop+qoij/BzwPCOAI8KwQwlgaHZMkqXTZhWDOlgKsNmjfwOHayn+2TEjoScRuH2YsGYleL/jhR12RgpXNbuFg8kwOJM9CYMPDsQY6ZQSPLz1BemE8/i4u/DJgAA/VrVs2H66ctWih5s7j4uDMGagsH6vYKRdFUYKAV4DWQogmgBZ4vLQ6JklS6dpy1HQ51fJY+3+lWmx5kNAbS/5xXpw4G4A331Ro0ODW7WYUnmblyWHsT/4ZgY36vo+xI24YgxbvJ72wkJ61a3PoxRfvmmAO6qEePS4WlaxMaZeS5tB1gLOiKDrABUgqeZckSSptGXk2lu1SV7U82dkV1ytTLXYjJPYHYxTT5k/k6Kl61K6tphRuxi6sHLgwkxUnh5JhOIm7QxAN/SYzZq073+05hF6jYWrPnqwfOpRA99tf6ljZXcqj//lnxfbjSsVOuQghEhVFmQrEAwbgTyFEJfpokiSBuoHo1y2FmKzQKlRPy9pXpFqEBZIeg8K/iU9pxYffqMWkvv8eblZCJctwli1xH5JeeByABn6D2J/UjuErdmCy2ajv68v8Rx+lZWDpnCVaGV0K6H//DVYrVIZpgZKkXLyB/kAIUA1wVRRl6HWuG6Uoyl5FUfampaUVv6eSJBVL1BkzxxLUDURPdrpi6aGww4VnIX81aHx45YvNFBZqGDwYevW6flt2YeNQylyWn3iK9MLjuDkE0DZoKpO2BfPahq2YbDZeaNWKfaNG3dXBHKBGDahXD3JzobIcxFaSlEsP4JwQIk0IYQGWAe3/fZEQYroQorUQorX/dc9tkiSprBQY7SzaoaZaBrVzwePSafRCQMqrkDsPNG6sOrSLlas9cHODr766flvZxjhWn3qeqMRp2ISZ+r4DcNR+TLc5e9gQE4OvszPLhwzhxz59cHUo+zXXlcH996uPEREV249LShLQ44H7FEVxUdT9ut2B6NLpliRJpWHZbgN5BkHdQB0dGl4RZNMnQvZ3oDhQ4LWasePUeuaffAL/roslhJ2jqfNZFv0EqQWHcdH7c3/NL5h7KIxHf19NhsHAA6GhHB49mgFFmUW9i3TsqD7u2FGx/bikJDn0SEVRlgD7AStwAJheWh2TJKlkzlywsO24Ca0Ght5/RY3zzG8gYyKggWqL+OiTLsTHq0vxXnrp6jZyTefZGjeR5Pz9ANT1eRid8gQPzdtITFYWjlotn/Xowdi2ba9bQ/1ud2VArwzr0UuUxhdCfAh8WEp9kSSplFhtgl+3qqmWXi2cqOZz8WzQnPmQ+qr6PGAGR2IH8OWXaiD68cd/JvaEsBOdvoTIxG+w2g0463xpV/0t5hxSmLR9MXYhCKtalXmPPELjKsWriX43CAmBwEC4cAFOnYL69Su2P5VgXlaSpNK2+YiRpEwb/h4aHmp1cblK/nq4MEx97j8Fu8ezjB6trtAYMwbCw9WX8kwX2Bb/EUl5UQCEej+In/NzDFmyiX0XLqAAb7Rvz8ddu97xOz5LSlHUUfrixeoovaIDuqzlIkl3max8O6v2qNv7n+jkgoNOAUMkJD4KWMHnDfB9g5kz1cm8qlVh0iR1eeOJ9OUsjR5CUl4UTjovutWazNHU/rSduZB9Fy5Q09OTLcOHM6Vnz3s+mF9SmfLo8m9Eku4yi3cWYrJAixC9ur3fdALOPwyiEDyHg/9npKbCm2+q13/1FehcUlgf8zHnc3cBUMurG7U8X2LUmm1sPqcezTMsLIxvevfG4w6rjljWZECXJKlMRJ+3sOeMGQcdDOnoop6Sk/AA2DLA9WEI+BkU5fKBzz17Clr0XM2S41Ox2Atw1HrSPng8O+KqMuj3heSaTPi5uDC9Tx8GNmxY0R+vUmrWDNzc1JouyckQEFBxfZEpF0m6S1htgvnb1PNBH27ljK9LDiQ8CNYEcG4HQb+DomPTJvXAZ0dHweNvfsz2+IlY7AXU9LyfzjVn8/qf2Ty7ahW5JhP969fn6OjRMpjfhE4H7dqpzyt6lC4DuiTdJTYdNpKcbaeql4aezexwvh+Yj4NDQ6i+BjQuGI0werQA4OHnZ2LzXomD1p0uNT8ix/gcracvYtXJk3g4OjK7f3+WDxlCVbei10K/V1WWtItMuUjSXSC7wM7qvepE6OMdHNCnPA6GCNBVh+ANoPUBYOLHBZw+7UpgyFl6PP0zwR4daOI/jnEbo1h0bAkAPWrXZla/fgR7elbY57nTyIAuSVKpWbZbnQgNq6WjicMrkLMaNN5qMNcHI4Rg/a7tfD5FzQ0Mf/8Lutd5l+i0erT++XdSCgpw1euZ0rMnL7ZufU9uEiqJtm1Bq4UDByAvDyqquKRMuUjSHe7MBQu7TprRaeHZZp9BzkxQnNU0i2MjCi3pbDjzBq+85I7NqqfXkAjGPDqej7fZGLBoESkFBXSuWZPDo0czpk0bGcyLwdUVWrYEux2ioiquHzKgS9IdzG4XLLxYfOuF8Lm45v8X0EK1RQjndpzJXM+S448xf44XZw62wM/fyNP/50+bn5fw2+HDOOt0fPXgg/w9bBi1vb0r9sPc4S5tzKrIyosy5SJJd7CIE2bi0mx0qr6GMOf/qN8M+IlCp/ZEnBtPbPZmstP8WPat+lr9pw/x1Pr1AHQIDmZ2//7U9fWtqO7fVdq0UR/37Km4PsiALkl3KINZsDyykHpeEQytNxIFgfD7mBh7EDuPD8Zky0GvcWXT9zMpyHXBocFZItzX46zTMalbN15p2xatRv6SXlpat1Yf5QhdkqTbtnavAQ/NMcaGPY0GMxaPEWzJziI2910Agtzbcj7qAzasDgC9GXOvlXSqWYNZ/ftTx8engnt/92nQQM2lx8VBWhpUxPEP8p9nSboDpWTbOHDqFK81H4STNod8xw4sTDtLbO4W9BpXOgYjE2nWAAAgAElEQVS/S1LqGF4co55Q5PDgFr55vD1bhg+XwbyMaLXQqpX6vKJG6TKgS9IdaPXuBMY2HYSXYwqZSnV+zyrAaMslyP0+OgTPZPxfJka+ZkTkuuMRmsax2W3u2Zrl5elS2qWi8ugy5SJJd5jo+Gy6eQ8iwDWGTLsrq4y+aDTutK/+H7bGBvH4kiXknQqEva3R6uzsWO5HHT8ZyMvDpYnRihqhy4AuSXcQm82MPqU/tT33kWd3YJ0phACPzlRzH80LayLZFncIzDpc1z1KAfD+exqaNq3oXt87rhyhV8QJRjKgS9IdQthtJJ3oQR337RiEjo2WZrSo/h6rTvowYOFSTDYbVVxdaXNuOGtT3GnaFN5+u6J7fW8JDQUvL7XqYlLSteezljWZQ5ekO0Ce6QJnT7UmWLsdi9AQYX2Eqt4zeWLpBd7etBmTzcbw5s2Z2/pl/pjrh1YLs2eDg8Ot25ZKj6JUbB5djtAlqRK7dLZnQfKbtNHHYhMKK1PeZLuxE98tX4FdCEK8vPipTx86BYXSsqX6q/4bb/yz4kIqX23awF9/qXn0AQPK994yoEtSJZVjTGB7/Me4Gf6ki2McAF8fe5sv4/xIyo9Cqyi80b49E7p0wUWv5803ITpaPdfyQ3l0e4WRI3RJki6zCxtHU+ezN+kHgpRUOjvGAzDx0NNMOOEA5NIqMJCf+/alRWAgALt2wdSpoNHAnDng5FSBH+Aed+VKl/KeGJUBXZIqkUxDDNvjPiK18ChVNfn0cIpDg+DT412YcCIUV72eSd268XJ4+OVt+4WFMHy4WunvrbfUUq5SxaleXT14OyUFzp2D2rXL794yoEtSJWCzWziUMpsDyTOxCytBemd66k+ixcr0mJa8c+R+wquEsvjJvtT418ET770Hp05B48YwYULF9F/6x6WJ0bVr1VF6eQZ0ucpFkipYWsExVpwYyr4LP2EXVpp4daajchw9BSxNaMjr+4cwoEoftj3/5DXBfOtW+Pprddv5nDng6FhBH0K6SvPm6uPhw+V7XzlCl6QKYrUb2Jv0I0dT5yOw4+FQHb14mMCsd/BwzeKvlNpMPfYRj3h3ZEwPbxz1V4+/cnLgmWfUPO2778pVLZVJs2bqowzoknQPSMyLYnvcJ+SZE1HQEOwxiNl73Xiv1vvU8srgeF5NjltW0MQhiNpVtYTXuXZB+dixEB+vTsK9914FfAjphsLC1MdDh8r3viUK6IqieAEzgCaAAEYIIXaVRsck6W5ksuYSmfg1JzNWAuDlFMqp9D68ueE0azt/T1OvVLLsIfjXiSD6dzV/8lgHV5R/LZVYvBh+/RWcndVHvb7cP4p0E3XqqCuN4uMhO1vdPVoeSjpCnwasF0IMUhTFAXAphT5J0l1HCEFs9mYiEj7DYM1Ao+hx1Q/gnU2OxGefZm2nedznm4hNWwPv0G1M/9sdq81MeF0HQgOu/t80MRFefFF9PnWquu5cqly0WmjSRJ0UPXwYOncun/sWO6AriuIBdAaGAwghzIC5dLolSXePAnMqEQmTicvZCoCnY2NWnmzL/CPp6JRC1nddTXf/c6CtirbmJs6kV2XPmTz0WnjkPuer2rLZ4OmnITMTevWC0aMr4hNJRREWdgcFdKA2kAbMVhQlDNgHvCqEKLjyIkVRRgGjAGrUqFGC20nSnUXdtr+UqMRvsdgL0GtcSCvoxavrBAZrOh4OOnY/tJOGjodA4wXBf2LXh/J7RC4ADzR3wtdde1Wbn38Of/8NVarAL7+UfzU/qeguTYyWZx69JMsWdUBL4AchRAugAHjr3xcJIaYLIVoLIVr7V8SZTJJUAbIMZ1l96nkiEiZjsRfgoG3JV7t6M/4vKwarjaeaNiFp6DkaOv4JGjcIXg9OzYg6beZcqg1PF4VeLa8enUdFwfvvq8/nzFE3r0iVV0WsdCnJCP08cF4IEXnx6yVcJ6BL0r3EajdxKHk2B1NmYxdWHLQ+bItrz6wDCmChaZUqfNe7N51dvoPMmaA4QdBqcG6LySJYuqsQgIFtXXDS/zP8zs2FJ54AqxX+7//UdItUuV0K6EePqqkyrfbm15eGYgd0IUSyoigJiqLUF0KcBLoDx0uva5J0Z7mQt4/t8ZPIMamFtLIN4XyyzY9cswYvJyc+6tKF0W3aoMv4EDK+APQQtBRcuwCw4YCB7AJBTX8t7Rr8s0xRCBg5Es6eVTesfPppBXw46bb5+KhlAM6fh5gYqFev7O9Z0lUuY4F5F1e4nAWeLXmXJOnOYrTmEJk4jVMXlyJCIDP2NyIq0RUFeL5FCyZ1704VV1dInwQZnwBaCFoIbg8BkJlnY8NBIwBDOrpcdfbnDz/A77+DmxssWiR3g95JwsLUgH748B0Q0IUQB4HWpdQXSbqjCCE4k7mO3YlfYrRmoaBjT1JzZh2oitWupV316nzbuzetqlVT35DxBaS/BygQOBfcH7nc1tLdBsxWaB3qQN3AfxaV79unplgAZswon6AglZ5mzdSaLocOwaBBZX8/uVNUkoohxxhPRMJkEvPUKaRsYw2+3BVKcr471dzd+axHD55q2vSfDUGZ0yBtnPo8YAZ4Pnm5rZhkC1Gnzei0MKj9PxOh2dnw2GNgNqvLE4cMKbePJ5WS8p4YlQFdkm6DzW7mUMovHEyejU2YsQsXFh5tyJbYajhqdbzbqT1vdeyI25Vnv2V9B6mvqc8DfgKvEZdfsgvBwh3qROiVyxTtdrVOy9mz0KIFfPlluX1EqRRdKgEgA7okVTJJeXvYEf/p5UnPQ8m1mXOoLvlmRwY3asRnPXoQ4u199ZuyfoCUserzqt+D16irXt510kxsqg0vV4XeVyxTnDQJVq8Gb29YskQeWHGnqltXnfOIjVWLqf2rWGapkwFdkm6h0JJBZOLXnMn8A4Bsoxcz9jfiVIYfLQIC+LpXLzrXrHntG7O+h5SX1edVpoH3mKteNpgFyy4uU3y03T/LFP/4Qz1CTlFg/vzyractlS6dTq1Tv38/HDkCHTuW8f3KtnlJunPZhY0T6cvYk/Q9ZlseNruO1afq8GdMKP4unszu352nmzW7fHLQVTK/hdRX1OdVpoHPK9dcsnafgVyDILSqjrZ11RRNTAw89ZS6VPGTT+R687tBWJga0A8dkgFdkipEWmE0EfGfklZ4DIDjaVWYd7gp+WZP3urQjjf/nSe/Uua0f3LmVb8F75evuSQl28Zfh4wowOOdXFAUhZwc6NtXnQzt1w/efruMPpxUrvr1Az+/fw6PLksyoEvSFUzWXPYkfU90+lJAkGN0ZsHRxuy/EMgzYc2Z1K0b1T08btxAxmeQdnHDdNXvr0mzXLIoohCbHTo0cKBWFR02m7oTNDpa/RX911/VA5+lO9+AAeqf8iADuiShFtI6nbmWyMRpGK1Z2IXCX2drs/pkA9oH12HvyJ7/rCe/fgOQ8RGkTwCUi6tZRl730kOxZo7EWXB2UHjkPrXi9PjxsG4d+PrCqlVws38zJOlGZECX7nkZhaeISJhMSoFaFu9Uhg/zjzTD07E2Sx/ryUN1615zwMRVhIC0dyBzMqCBwF/A8+nrXmqxChZdXKbYr40zHi4aZsxQlyXq9bBsmZwElYpPBnTpnmWy5rHvwg8cS1sM2MkxOrI0uhGx2Q34qEtXnm3RAt2t8h7Crq5kyf4B0EG1eeDx2A0v33DQSFqunSAfLV2bOrJu3T+HVfzwQ/nVzZbuTjKgS/ccIeycyljN7vPfYLZnY7Mr/B1bm83nmjI2/H5eb9cO1xtNeF7VkAUuPAu580BxhGqLwb3vDS9Pz7Xxxz4DAE90cuHQQYXBg9VKfO++C889V1qfULpXyYAu3VPSCo6xNW4yWUa1MOipDB8WHwujX/3uHBvTWS2gVRR2AyQ9Dvmr1HrmQavAtetN37IoohCLDdrUccDRoqfLw1BQAEOHwscfl/STSZIM6NI9wmDJZGfCN8RkrUFRBNlGR5Ycb0yo94NseqYboT4+RW/Mlg3n+4FhO2i8IXgdOLe96VsOxZo5eM6Cox4613GhZ09IToZu3WDmTHnykFQ6ZECX7mp2YeFQ8kL2JP2EohiwCYW/Yupgsj7Ijw/3pkVg4O01aEmC873AdAR0QRC8ARwb3/QtJotgwXZ1IrRbA2cef0TDmTNqbfNly6Ao2R1JKooKD+gWi4Xz589jNBoruitSETg5OVG9enX0ev2tL65gsVk72HjuUyAZRYEjKVU4ldGDtzs+yv21at1+g6YTkNALrHHg0EAN5vpbn5P7x34DGXl2qrhqmfqWE4cOqWVwN2wo+9oe0r2lwgP6+fPncXd3p1atWjdfGiZVOCEEGRkZnD9/npCQkIruzg1lFp5jxcmPsQl1GWJKvitRiR14vsUwpvWqX7z/zgq3w/n+YM8Cp7ZQfQ3o/G75tgtZNjYcMGI1w5YF7uzaqRAcDBs3qgc9S1JpqvCAbjQaZTC/QyiKgq+vL2lpaRXdlesyWnJZHD2FAvMGtBo7BouOyMTm9Kk7mnc6hV11CtBtyV0MF54GYQK3flBtAWhcbvk2IQTzthVgMsKe3zw5tk9D1apqMK9x64G9JN22Cg/ogAzmd5DK+Hdls1tYfPwnUgsW4Kw3oihw4EIdWga+yC/9O6Mv7um8QkDmZ5B2saiK12i1NotStPZ2njBz7JyVzT+7E39cS9WqsHkz1K9fvO5I0q3IahGVwJYtW+jTp8813z948CB//PFHsdr873//e/l5bGwsTZo0KXb/KishBMuilzB1V2/yzLNx1huJzfbHZn+Hrx6cx/Mtu5YgmJsh+bmLwVwB/8/U2ixFDOa5hXZ+21zInz+4E39cfzmYN2pUvO5IUlHIgF5EVqu13O95s4B+q/5cGdDvNkIIVp3YxIStA8kwfIqPcxaZBldMlud5t+MqxrR5FEddCX75tKZD/AOQMxsUZwhaCr7jb2tt4cx1hSz93J2kU3oCAoQM5lK5qBQpl4r28ccfM2/ePIKDg/Hz86NVq1aMGzeOLl260L59eyIiIujXrx+DBg1ixIgRpKWl4e/vz+zZs6lRowbDhw+nT58+DLp4Cqybmxv5+fls2bKFCRMm4Ofnx9GjR2nVqhW//fYbiqKwfv16XnvtNfz8/GjZsuU1fTKbzXzwwQcYDAZ27NjB22+/TXR0NElJScTGxuLn58cDDzzA3r17+e677wDo06cP48aNY/369RgMBpo3b07jxo2ZNGkSNpuNkSNHsnPnToKCgli5ciXOzs7X3LcyE0Kw5tQetsR9Qz3faKp7gMGiR+EhxrR+HXfHIm4KuhnjEUjsB5ZY0AWqG4acb6/u6V+RZj562YnsZB01ago2b1IIDS151yTpVipVQB/5v8wyaffnMTfeNLJ3716WLl3KgQMHsFqttGzZklatWl1+PTs7m61btwLQt29fnnnmGYYNG8asWbN45ZVXWLFixU3vfeDAAY4dO0a1atXo0KEDERERtG7dmpEjR7J582bq1KnDkOuc/uvg4MBHH310VcCeMGEC+/btY8eOHTg7O/PLL79c956TJ0/mu+++4+DBg4Cacjl9+jQLFizg559/5rHHHmPp0qUMHTr0pn2vLIQQrDp5mHVn/kfjKgdo4GfDZlcw2TrxVNO38XUppeUiecsh6WkQBeDUGoKWg776bTWx94Dg0Yd15GZoqFHbzq7tGm5WpFGSSlOlCugVYceOHfTv3//yaLVv36trcVwZbHft2sWyZcsAePrppxk/fvwt2w8PD6d6dTUoNG/enNjYWNzc3AgJCaFu3boADB06lOnTpxepv/369SvWyDokJITmzZsD0KpVK2JjY2+7jfJmF4Jlx4+y/ORMWgRE0aqaCQCLrRkDG7xDoHvd0rmRsEH6h5AxSf3a4ykI+Bk0t/dz3rgR+g8EQ4GG4LpW9kRoqeJfOl2UpKKoVAH9ZiPpsiKEuOnrrjep7XFpxYdOp8Nut19uz2w2X77G0dHx8nOtVns5913c1SJX9ufK+wI33Zz1734YDIZi3b88WO12Fh09yqJj82hdbTddauUDYLPX5ME6bxHiFV6KN0uHpCehcCOgAf/J4DPutvLlCQk5DBsWz5YtjRFCQ+2WJjas1FLFv/KtCJLubvf8pGjHjh1ZvXo1RqOR/Px81q5de8Nr27dvz8KFCwGYN28eHS8eEFirVi327dsHwMqVK7FYLDe9Z4MGDTh37hwxMTEALFiw4LrXubu7k5eXd8N2atWqxcGDB7Hb7SQkJBAVFXX5Nb1ef8t+VDZmm41ZBw7QY+4HHE79D33r/0Wgez5C+NGpxiReaLW0dIO5IRJiW6nBXOsPwRvB943bCuZnzuRQp85Z/v67KUJoaNbTgH/wFhxFQen1U5KK6J4P6G3atKFfv36EhYXxyCOP0Lp1azxvsB/7m2++Yfbs2TRr1oxff/2VadOmATBy5Ei2bt1KeHg4kZGRNx3Vg7p9fvr06Tz88MN07NiRmtc7MR7o2rUrx48fp3nz5ixatOia1zt06EBISAhNmzZl3LhxV02ujho1imbNmvHUU08V9UdRYQrMZqbt3k27mRPZf+Fdnmq2jjo+WYA74dVe57kWa2jg16v01sALAZlfQlxHsMarOz9r7QPXbrfVTFISdOpkx2xugaKx03loPiEtYjmwfg9TpkSUTl8l6TYot0o5lKbWrVuLvXv3XvW96OhoGjZsWG59uJ78/Hzc3NwoLCykc+fOTJ8+/borTyRVaf2dZRkMfBcVxa+HN9Op5kHCg86jUQAcaV71GcICnsZBWworV65ky1BrmOevVr/2fg2qfAbK7VXIWr8ehg2D1FTQ6vPp8382fILMrPhsEVlJGYSHVyMy8vpH0EnS7VIUZZ8Q4pbLrUqcQ1cURQvsBRKFENfujrkDjBo1iuPHj2M0Ghk2bJgM5mXsfG4uX+3axaJjEdxf6yj/aRePViMALY38B9Ei4Dlc9L6lf+OCjXBhGFgvgMZLPSrOvf9tNWEywdtvw1dfqV8HVc/gvmEmvKs5EbV8N1lJGej1GsLDg0q//5J0C6UxKfoqEA3cscfazp8/v6K7cE84npbG5zt3svLEHrrXPsXbnc7hoLUDGur6PESrwBdxdyyDNX52k3rmZ9aX6tfOHSDwN3CodVvNHDwIzz6rPup0gtZtThLYzox3teokn07kyKYD6PUa3NwcGD++Q+l/Dkm6hRIFdEVRqgMPA5OA/5RKj6S7ihCCbXFxTN21i83njvJAaAwTu57FSWcDIMSrO60CR+PtXEbVG437IGkYmI8BWvCbAL5vgVL0//RNJvjkE5g8GaxWqFHDRlbWPHK0LjQJ7YbZYGLnwk00a1aFTp1qMH58B4KDZV1cqfyVdIT+NTAecL/RBYqijAJGAdSQJebuGVa7nWXR0XyxaxdHUmLpUTuGT7ufxVmvLtsM9uhAq2qj8Xcpo/kTYYb0TyDjv4AN9HWh2lxwvu+2mtm0CcaOhehodfHLK6+A0fgXS9fmEP7IAwDsXLSVvIw8Og2qx7ffPlQGH0aSiqbYAV1RlD5AqhBin6IoXW50nRBiOjAd1EnR4t5PUpnNVpKTCygoMOPq6kBAgCsODpVnO0GeycSsAwf4OjKSlPw0utc+y+QeZ3HWq0sog9zb0irwRaq6NSu7Thh2Q/JIMB0FFHXi039SkUreXhIXB6+/DkuXql/Xq6ceFdexI7Rtd577hz2I3tGBM3tOcmbPSQCiohLL4MNIUtGVJBJ0APopivIQ4AR4KIrymxDizthPXgkJIbDawGJTH612waVFSEKor6enFWC32bHawJBhICOjkMaN1e2IFRno43Ny+DYykun792O159Gj9ll6tjuHo04N5NXc29Ay8AUC3VqUXSdsuZD2LmR/DwjQ14HAmeDSuchNpKWpqZXvv1dTLS4u8N578J//QGpqDmPHRuDRqCE+QX5kp2QRseBvADkRKlUKxf4/XgjxNvA2wMUR+ri7IZhPmDABNzc3xo0bVy73s1gFhWaBySIwmgX2K36H+e/EN9n051r0ej01a4Xy+bQZeHh6XfV+u91OUoYVQ74Rk8GM1WylsNByOdCXZVAXQrD7/Hm+joxk6fHjOOuN9Kh9lh61Y3HQXhHIA0YS6N7qFq2VqCOQuwDSxqkrWNCpG4R83y/y9v2MDJg2TV29kq9uTOXxx+Hzz6F6dXU3aFjYj/jXq0nnZ+7DarGyeeZ6LCaLnAiVKo3K87v6XcZms6G9WIv732mSKlVcMds1FJjsmP61mVOnAZ1OQa+FXg/2ZPKnn6LX6/jgvbf4buokXntjAhqNBq1eh06vRaPRABqcPd1w9gS7zYap0IS50ERycgEBAa6lPnIXQjD/yBGmRUYSlZiIp6ORRxvG0DUkHq3mn9RKy8CRBJTliBzU6ogpY8GgFlDDqS0E/AROYUV6e2wsfPmlmk4pVM9xpndvdRL0ytWrU6ZEoHNzo92QLgDsXrKNrKR0qlRx5bHHGsmJUKlSKJWALoTYAmwpjbYqwqRJk5g7dy7BwcH4+/tfrrYYExPDSy+9RFpaGi4uLvz88880aNCAmJgYnnrqKWw2G7179+bLL7+8XC534sSJBAYGcvDgQY4fP84vv8xh6tSvsVjMNGnSkon//QZbjmD71g18PWUiZrOJ2rVDmT5jFn7e7ui0/+yGfKRfr8vPO3dsx5w5CzDkFHDlXjCtXoujswMavR4HJz0arRZndxec3V2w2mzExBdgyDNgt9lLPHK32GykFRaSmJfHU+vX4+9SwHMtzhEeFIeiqKtWanh0onngc1R1bVrMv40isiZD2geQMxOwg9ZPPYTCczgoN98AbbOpG4OmT4c1a+BSOZzeveGdd9Q8+b/tPZBKl+d6X86bn9hxDIBatTzlRKhUaVSqEboycWKZtCs+/PCGr+3bt4+FCxdet3zuqFGj+PHHH6lbty6RkZGMGTOGzZs38+qrr/Lqq6/yxBNP8OOPP17VXlRUFEePHiUkJITo6Gh++20BM2euxMPXi0mfjGfDxhV07d6b77+cxPoNG/HzduPzz6cw/X9f88EHH9ywn7NmzeLRRweh0SjYL+bWFQWw23HWQ2ZmLvkCdA46HF2ccHR1VIO7hyvO7i6YCk0Y8gqxWdTfFmrUKPpossBsJqWggCyDAfXfEiuvtztKPd9zKIoAFEK8utM8YAR+Lg2K3G6x2PMh82v1aDh7PqAFr5fBfyJob1zcTQh1/fiiRTB/PiQkqN/X6+HJJ+GNN6DZDeZp7XZBs36dsbt5kR6fyvZ5my++V+bNpcqlUgX0irB9+3YGDhyIi4u6AqJfv36AWg5g586dDB48+PK1JpNavnXXrl2X66A/+eSTV+Xbw8PDCQlR11T/9ddfHD5yiGdH9AVFrYbo5eWDXug5dTKaB7p3AtTDLNq1a3fDPk6aNAmdTsewYc9gsdiuSaEAZGcbsdsFVrMVmyUfY34hzq6OaBwccHB2wNHVCUdXJ8xGMwaz6ZY/F7sQZBoMpBUUUHCxyJeTzoqvsxm7k4n6+rMoaKnr8xBhAcPwciqjdeSXO2SE7J/UEre2i4dUu/UF/yngeP1/RMxm2LED1q2DVavg1Kl/XgsNhVGjYPhwqHKLcurLIw3Y3bwwFRjYMns9NotV5s2lSqlSBfSbjaTL0vWKPtntdry8vC4fElFUlwpzWW2C3EI7g4Y8w/j3JmExWSjIysNqtrJ9+5907tyVlSuX3LK9OXPmsGbNGjZt2oSiKDg46K47um7c2P+aQJ+cXEBaWg6KRoOzuwtO7s44ODmAkwPJWTa8XBWcHK5OT5isVtIKC0kvLMRqtwMCdwcrXs5mNKiBXUGhSZUnaVrlSdwcAm/r53Pb7IWQ/TNkTgFrkvo9p/vA/1Nw7XLVpfn5sH8/bN+u/omI+GeCE9TAPWgQDBmiplU0RShNtyPaxPoDRjQKjOzhimd8PaKiEgkPD5J5c6nSqVQBvSJ07tyZ4cOH89Zbb2G1Wlm9ejUvvPACHh4ehISEsHjxYgYPHowQgsOHDxMWFsZ9993H0qVLGTJkyOVyulcqMNrJyLMT3r4ro/6/vTsPr6q6Fz7+XXuf+ZzMYQyzgmhCEoJiFGLttXgRrdVaC/jY0tarviBe9Ppie3tfBm2olSKgvXIpVq+tUhxQHPo6ICoVEEHGWxmVOQyS8SQ55+QMe6/7xz6EBBKGhIysz/PsJyfn7LP32ofwy8raa/1+E+5g3Lh78Dp9VFSUEwoFyMm5knnzpvPNN99w6aWXEgwGKSoqYtCgQfWO88EHH/Dkk0/y97//vfYviIaYJpimjaSkJDweiEbh2DGIRBIAF6YhCFRYmxBabXrYwxJAWt8KkEhrSEV4QLix6SY2PUZMMynTDHRN4rA7MULw1fuPUJQMyfEtJeXk4+aU86xlVFg98rK5YBy3nnNmI9MKKam5hQM7BF9/bfW6d+ywhlN274ZTc81lZsKYMdY2cuT5te2rgxFeWmmlwR1f4KEgy0WBGi9X2rGLPqDn5eUxduxYcnNz6du3LwUFBbWvLV68mIkTJ1JYWEg0GmXcuHHk5OQwf/587r77bp566iluvvnm2nS7ppREYpLiSusuW/aQTH476zc8OPFOIpEYmmZj1qynGDkyjxdffJHx48fXDuMUFhaeFtAnT55MOBxm1KhRAFx9dT7z5i0kGIRQyNpqaqyhhYZpgLPeM1ICpwS9k0FQUDejciwKsVPeD1BRIbjvvsbOCT4fJCVBYqL1NSHB2nw+a163y2VtdrsVYE8EWcMAI1JOpHIDIf8ugqFkqgLzKKvqT3lgMMdLkzlyRDR6vTabFcBHjICCAmvLaOIQ98GSGAs/rMaUMHqoi+uzXE07kKK0IpU+twmCwSButxshBC+/vJi//GUxTz/zF9zJCaDpCAEpPo0El2hWDu9YDAIBqKqyhg6CwZMzMk7lcIDTaX212+sHS123hhesTVIdCVMaCuEPn6xw5IQ/PmYAACAASURBVLZZQyt2LYyUAikFRsSFy5aMXfdgGMIKuAbs37+DF164nPJy8PuhvNzaKiqsraV/pFJSrLnhAwdaKzgHDYLcXLjiCuszaK7iSoPZyyqpCEiuutTBv4zyol2oXOyK0gStlj73YrRx40YmT56MaZrY7V5mPv40jkQrmJuGQbdkHa/7/GuHSGkFbb8fKivrj/+e4HRavdwTPV232wriZxsPjsRilIRClASDRAxriqGmS9I9EretBjjR7RVEoz6qyhwEKgw0rZLMTGe9aY5+P/zpTw2fxzStX0B+/8ktELCuparq5F8VoRBEa8qIBf5BLLANISvQhImug917OZ60fNyJGfh8kJYGqamQng49e1rX3lLKqgyeeruKioBkUE8bP79BBXOl41ABvQkKCgrYunUrBw/6qaiMkJCejNAEsXCUylI/tqgb7zlOC5TSCnYnerl1q8YJAV6vNVSRkGA9Pp8xYFNK/DU1lASD+MMnZ7Z47JDmNtC1AFJaXX5N2AgHPYTCyeh2F64EsDmjBMqrz2uao6ZZwyyNFH2C2HGoWgqVr0Bo1cnn7f0h+f9A0s/B1jaVlSsCJk+9U0VplUn/rjqTxyRg11UwVzoOFdCbIRSRJHRJRghBOFhDVWklSAgEGh3UPvnekLXcvKys/hi4w3EyICYkWMMl592uaJSSYJDSUCg+UwU0Aeke8NrDmNIqEC0l2HUPLlsKTj2BnQdKCQQqcXojeJO92Bx2krqlEAmHiRmy3qKn8xI9YFUIqnoLgp8C8XEj4YaEH1mLgTzXn3VBUEuqCJjMfaeS436TPuk6U25JwO1QwVzpWFRAb6JAjYkz0QsIaqpDVJdZxZytXnXD5cxM0wrgxcXWMMQJDoc1pJCcbPXCm/IXfsw0KQuFKA0Ga+eNA/gcglS3gSYCSGlgShBCw6kn4balYNNP3uzzeh0Eg1HCgRoiwTDuJA+eBA82p5MjZQZJXo1E9zk0zqyB0GqrQlDgQwhvrfOiHbw3QeJY8P0A9Lavi3LcbzDv3SpKKk0yUnUe+n4CXtdFX25X6YBUQG+CQNikpNLkRDAPlJ8M5pomahf7nBCJWLUnS0qsG51gDU2kplrjwz5f04K4lJLKcJiSYJCKmpraySs2DdI9Aretpl5v3KY5rd64LQlNnN71797dS2lpML4SVRLyB4iFwnTNSKUmBuXVJtUhqImYPPjge6xbd5irr87gl1Mz6ZW2G4KrIPgZ1KwDefKGK8ILvtFWAPfdfMYVna2tqCTG/L9V4Q9K+naxeuYJTbj/oSjtgQro5ykUNinxm0ggySPokeTmW5vZYPKrYNCaD15efnLmh8cDXbpYwbwpwykAwWiU0mCQslCIaJ1pLykujSRXFLDGxk/2xhNx2ZKxae4zzrpxOGwNLlByOGwEwybl1SamGSUSrSE7ezkjBq4hb9A+egVLIXjKwZw54L0RvKPAXQBa+5v2t/1QlD8uryYYlgzOsPHATQm41DCL0oGpgH6KM6XPrYmYHK+0gnmiW5Ds1RBCnHbDMBCAI0esGR4npKRA9+7WkMq5mjZtGm+//TaappHepQtzFizAnpRE6EQ3H/DYBWluE5sWwpSR2l8cNs2Ny5aM05bYYG+8MQ67oE8vJ0hhVf2R30IkjIcwbm8NQhpUO0q4t+Dp2veEIzpHyy+h3+BbwFMA7pFgSz/3C21lUko+2lrD0rUhpIS8AXb+5Xs+7DYVzJWOTQX0cxSJSY77TaQEn0uQ4tNO6+3WDeSGYWC3a6Snx+jWJYLTYQAmGNL6WjtZu6FJ29Zx/+2hnzP13ydRHYmwcMHzPFk4g9/M+Q0epyDRCQ49iilP3lEVQseue3DoXnRhs45tVMTPYcbPG/+KAdKIf41ZG9H46w0TgGFqhCM2lm29jSrfSA5UD2Xv8QEc37aftxZ9p90HxXBU8vLfA3yx2/rcbh7m4tbhbjU1UekUVEDn7OlzjxcXY7O7eeKphQzJGkzFt7u4ZdQEDCPGTf/8HeY+/RxbNx9lxSebeO65x0hP787ePRvZtvk1Xn3tHZ5Z8CqRSJSrr8piwdO/RNd1lq/4ghmFiwiHI1wyoBf//cfp+Hz1J1inxL9NdII7VkqyI8KlvvL6jT81DplBMEua/mEIDbCDsINwgnDENxdoLg4fCnCsJMwPf5pLai8XV9+WSsblifS8Mpv/WOznlqtcXHuZs+kzYlrQnmMxXvi4muN+E6cNfn6Dj2GXNHwDW1E6onYV0J/b1DJVbe7N29joa2dLn7vg2bl079mNjRvW8ptf38MnH/4Xv/jXKUyZdBs/uuNmfj//I0xTUO5PBEy2b1/HlvWvM+jSR9mxcz+vvvEJa1YuwW53MulfH2fxa58xZvR3KZz9F1Z8sASv18vv5ixk9jNv8n9/ObF20Q9IBPC7wqdZsuQdkpJ8fPj+IsJYwycaOpqwoQm9gXFx0fAmdECLB23d2oQOwgbY4l/1M96h7d7dx86dArtdo6yohBV/fJdLhg7gjgdv4ttKk5dWBvlgUw03X+nm6oGOdhHYo4bkbxtCvL+pBikhI1Xn3lFeMtLa1Y+/ojTbRf8TXS99rpTc+v2bwKikunQzn3++hrE/rpM+NxJFSJO16//BwoWv8tXX3bh25ADgMdLTIgzoH+Pqq4czKHMMCMHHq9ewcfNurhr5UwBCoRBdewzki03H2L5jL/nX34VhmtSEwwwZNozdlQloQpLsMvE5YghRw6MzH+LRmQ/x9Jzn+MMf32bmzBk49AR0zd4mn5fDYaNHjwTuv39YvayDGb0S2fBNhHe+DPFthcmLnwR4Z32IG3NdjLzcidPe+oFdSsnmfVGWfh6kuNJEAP881MUPhrvVgiGlU2pXAf1MPekWIyVChiGyH0w/GGVgapgxP8lJPr5c+wYR04PT6cOme/BXezAMnaKjXbHZdBITrSmI/fo72H/Agdd7cg6ilJIJEybwxBNPANbKzcpwmKXLlnHlyJEULlgAgE0zSXKaeB0hBBFqx9XjC38cegK/+OkD3Pr923hy1tMNXETrstm0Bqv0DB/oZNglDtbtjvDB5hBHy01eWR3k7fUhRgx2cH2Wi27JTZzacx6klHxzLMbb60PsOmzdQO6RonH3d7wM6tk2vwgVpTVcvBNuzSBED3JdfneWvfUmoeoiqiorePe9VaD5cCYNIaP3pSxasg3N2R9DduXd9/by9dc6WVn5rF79BgMHwoYNp6fPPeGGG25g6dKl7D5wgL3l5Xy2Ywer/ud/6JuVydYNXxI4tos+SQFS9G/59sBXCKzl+Xbdi8/RndIiSHb1w2NP4///7X0GD27hakAXgK4Jrh3sZOa4JCaN9jGgm04oIlnxP2H+31/9zHmrks+21xCoafzma1PFDMmGbyI88WYls5dVsetwDK9TcFeBhxljk1QwVzq9dtVDb3HStHrgRjGY1lLNvNyBjP3RTeTmT6Bv334UFNyAIZL5tiqJeQte4rFfT2bBvCcIhaKMGjWO++/PYfbs+Tz88N289lr99LknxEwTf00Nzu7dueeRR7hlzBiQJna7jSfmTic3cwjP/vE3PHTvg4TDUQQw7bFfkps1AofuRRPWP8t//Ppedu3ahaZp9O3b97Ryd+2ZJgRDBzgYOsDBgeIYn/6jhvVfR9h1JMauIzH++lmQyzJsZPa2k9nbTs/Uhu4FnF3UkHx9JMaGbyJs2hshELb+uvE6BddnORmV41KrPpWLxsWRPlcaYJRYhYVlfFm80EFPszbhqR0mMU3J0XKDqAE2Kags1QgGrddSUqB3b4jFTqbPfeWVV1iyZAmvv/EGFeEwFTU1VIXDCGHishm4bFE8dgNdGPWapGsOHLoPh56AXXNbhSc6iKb+mwXDJpv3RVm/O8yOw7F6aXZ9LkHvdJ3e6Ta6J+skewVJHg23Q9RO7AxHJeXVJuUBk2PlBnu+jXGo2CBWp7PfI0Xnn4Y4ueaythm3V5SWoNLnQrxHfjweyE+suXeD3tVaft7AgpvSapNIDGoqNQJ+a3aIwwF9+li5VgDWrbPS5xqmiS8xkRlz57Kt+BguWwynLUaPBAO7Vj+AC6Hh0LzYdZ81T1y7+KbLeZwaIwY7GTHYSWXQZPuhKNsORdl+KEplSLKjKMaOotjZD1SHwJq1MnSAnSsvdZCR2rl/pBXlTDrnT7+U1tBK7LC12hFA84KtB2hJjU7Lqw6ZVPihulTHiFn7dOtm5eDWdTBMk6pIhD5DsnhlxXtoIoLTFsOpG9i0ynrHEkJg1zzWpvuwaa5mFbvobBI9GvmXOcm/zImUkrJqk0MlBgdLDEoqDfxBE39AUhO1SuQJwG4TpHg1UnwaaQkaA7rZ6NdVx+PsOH/dKEpL6nwB3Qxa6VrjY+RobrD1Ai2x0UAeicQ4cixEddBDTbXVa3e7oV8/0J1RSmuqCUUDmDKMXY/htht4Trm/JoQWD94ebJoHu+bqUMMobUkIQVqCTlqCTm7/tm6NonRcnSegSwNiR63hFbBWOtoy4mPkjfeMI5EY27b5kaRgGhogcfkqSOnpp9IMo4cNBJwWwDXhwK67471wN7rmVD1wRVHaVOcI6GYAIntBxqvy2LpawfyUMXIrA2EMQ0YxzAgxI8rhIieGkQoIHM4a0noeweGqqX94aUMTTtw2Dw6bB5vmOq+EV4qiKK2hyQFdCNEb+AvQHSvb0yIpZeuuepESGTsGsSMIJFI4ierdMbFjxsoxZSy+RTHMKKY8ecMtUuOi5EgG0bATkCSlF+NLKyVmalSGnJhRG11TUkhweNE0FbwVRWn/mtNDjwGPSCk3CSESgI1CiI+klNsvUNtq+WsOIePZAqWU1mNp4BNBHFizSYLSRtDUkUbxGY9lmDoVJWlUl6YBAmGPYE+tIIiJ/2Aii555Co/by7/92yMkudq+mg7AnDlzmDp1KsXFxaSnt9+0tIqitK0mB3Qp5VHgaPxxlRBiB5ABXPCAHjVPFjMGsAmTRBFGR2IgCEgXMeFAF3p8UY5OzISwAaGoJBg1MaRGLGKH8hSIWlMGdU+IhFSBjCXgPxbPYiitIfdTqw6dL8Mw0JtawaKOQ4cO8dFHH9GnT59mH0tRlM7tgkzDEEL0A4YC6y7E8U6V6OxFkqsPya5+pDpSSdasYC41D5ozC7dzMIJeVEXSOFzl5usywb4KwZEqQXmNRsSwoQeTEcVdIepA0wzsrkpS0u3oQmf+7x7njjsKeOCBcXz77QG6dfPhcNjYs2cPo0ePZtiwYRQUFLBz507ASqubn5/PVVddxfTp0/H5fACsXLmS7373u9x1110MGTIEgJdffpnhw4eTm5vL/fffjxHPprh8+XKuueYa8vLyuPPOO6murm7w2h9++GFmz56tbrgqinJWzb4pKoTwAW8AD0kpKxt4/T7gPuDsvcydDQetxpbgnNjbDqTEt4bsEiZVVdbeaWkQqqnAlZwAwPrVq/nwg7dYvHg5Tqdg/PgbKSjIB6z0uQsXLmTgwIGsW7eOSZMm8cknnzBlyhSmTJnC+PHjT1uOv379er766iv69+/Pjh07ePXVV1mzZg12u51JkyaxePFixowZQ2FhIStWrMDr9fLkk08yd+5cpk+fXu9Y77zzDhkZGeTk5Jz5c1MURaGZAV0IYccK5oullG82tI+UchGwCKyl/805X1NVVQlsNujb11q+f+CoF6lrRMMR1q35jOuvH43b7aZLFy+33norANXV1Xz++efceWed9LlhaxbN2rVreeuttwC466676pWrGz58OP37W5OpP/74YzZu3MhVV10FxNPndu3KF198wfbt2xkxYgQAkUiEa665pl6bg8Egs2bNYvny5S30qSiK0tk0Z5aLAJ4Hdkgp516Q1gw+Pd4bpoG/aiepjhAmsC+QQlXMi8/hqN08dnu9EmLRKBw4ABUV1vfJyVYwt9utfCJStyGlJFBWBYCmCTRN1Bs3N02T5ORktmzZcl6X4K1TNPTU9LknvPvuu4waNYolS5Y0epw9e/awb9++2t55UVEReXl5rF+/nu7du59XmxRFuTg0Zwx9BPAT4J+EEFvi2+lJsptJxyDRHsFEo0r2JSO5LzndunFpairdfT58DkdtMJcSyspg2zYrmOu6tdrzkkusYG6YktIq6+ZqkkeQmuJixIiRrFr1IQMG+AiHQ7z77rsAJCYm0r9/f15//fX4sSVbt24FID8/nzfeeAOAV145e/rc48ePA1BWVsaBAwfIz89nzZo1fPPNN4DVG9+9e3e99w4ZMoTjx4+zf/9+9u/fT69evdi0aZMK5oqiNKo5s1xWc3pFywtPc2BzXQZAkuZpdLdTe+WJiVYwd9QZgC8PmBgmOO2Q4tNJTUiiT58b2LnzLoYPv5K+fftSUFBQu//ixYuZOHEihYWFRKNRxo0bR05ODvPnz+fuu+/mqacaTp97whVXXEFhYSE33ngjpmlit9t59tlnyc/P58UXX2T8+PG1wziFhYUMGjSoeZ+VoigXtQ6fPldKKC2FQ4fAMKzqQb17Q3p6/RX/NRGTYxVWGbIeqTqOZlSnDwZPT5/79ttvN/l4HU2rpDxWFKXWRZE+Nxy2euWV8bk1iYnWWLnTWX8/U9YZavGKZgVzsApLT548GSklycnJvPDCC806nqIoyoXQIQO6acKxY3D0qNVDt9msXnlqasN5uCqDkqgBdt1K29pcBQUFtePpiqIo7UWHC+h+Pxw8aPXOwQrivXtbNz0bEo1J/EGrd56WoNWbDaMoitKZdJiAHgpBUZEV0AFcLquKUOIZ0q1IKSmtNpHSKnHmcqj85IqidF7tPqDHYnD4MBTHc27pOvToAV27WjdAzyQYltREJLoGKT4VzBVF6dzafUAHKI/nzerSxSoH19jwSl2maZU1A0j2auiaGmpRFKVza/fdVpsN+veHzMyTqz3PRUWdOec+17kH85kzZzJnzpwmtvbCmjlzJhkZGeTm5pKbm8t7773X1k1SFKUd6xA99EbW7TQqEpVUhqz59ak+vU0yFV6o9LkPP/xwvVwxiqIojWn3PfTzdeJGKECiW+C0nz2Yz5o1i8suu4zvfe977Nq1q/b59pA+V1EU5Vy1q4AuRPM3TRP0TNXp381GWqJ+pvrQgLVI6JVXXmHz5s28+eabfPnll7Wv3XffffzhD39g48aNzJkzh0mTJgHUps/98ssv6dmzZ73jrV+/nlmzZrF9+/Z66XO3bNmCrussXryYkpKS2vS5mzZt4sorr2Tu3Ibzm/3nf/4n2dnZ/OIXv6D8xM0ERVGUBnSIIZeWtGrVKm6//XY8HitPTHtJnwswceJEpk2bhhCCadOm8cgjj6hVqYqiNKpdBfTmppUpqzaoDEqcduiefO5j5w3t19bpcwG6detW+/jee+/llltuOa+2KIpycWlXQy7NEYlJqoLnfyP0uuuuY9myZYRCIaqqqtpN+lyAo0eP1j5etmwZWVlZ53RNiqJcnDpFQJdSUl5tIgHfOd4IPSEvL4+xY8eSm5vLHXfccVr63Oeff56cnBwyMzNrMyrOnz+fuXPnMnz4cI4ePXpO6XOzs7MZNWoUR48epUuXLrXpc7Ozs8nPz6+94VrXo48+ypAhQ8jOzubTTz9l3rx55/fBKIpyUenw6XPBqkJ03G+iCchI01t8EZFKn6vS5ypKa7oo0ueClRq3vJVXhKr0uYqitEcdNqBHIjGOHQsQNjTsXjc2DRLcrbOASKXPVRSlPeqQY+iRSIxt24opKQthc7sAqCj2E40abdwyRVGUttMhA/qxYwFMU+JJ9CI0QSQUJhwMc+xYoK2bpiiK0mY6ZEAPBCLodhsunxukJFBejZTW84qiKBerDjmG7vU6sAkHAKGqEEbMQAjreUVRlItVh+yhJ6V6sTvtmKZJsDJQm8Ole3fv2d98ioqKChYsWNCkdowZM4aKiooz7jN9+nRWrFjRpOM317mce+XKlXz++eet1CJFUVpSh+uhm1JSFa8nqhtRPG4bXq+D7t29OBznfzknAvqJxFt1nS0F7rnkJ3/88cfPu00Xyrmce+XKlfh8Pq699tpWaJGiKC2pw/XQd+yu4D8e/YDbb3qB3z/xd3w+B336JDUpmAP86le/Ys+ePeTm5jJ16tQGU+DedtttDBs2jMzMTBYtWlT73n79+lFSUsL+/fu5/PLLuffee8nMzOTGG28kFAoB8LOf/YylS5fW7j9jxgzy8vIYMmRI7erQ4uJiRo0aRV5eHvfffz99+/alpKTktLb6fD4eeeQR8vLyuOGGGyiO1+XbsmUL+fn5ZGdnc/vtt9dmZTzbuffv38/ChQuZN28eubm5rFq1itdff52srCxycnK47rrrmvSZKorSRqSUrbYNGzZMnmr79u2nPdeYvfvKZVLS76TN9riEmdJuf1ympPxOHjxYcc7HONW+fftkZmZm7feffvqp9Hg8cu/evbXPlZaWSimlDAaDMjMzU5aUlEgppezbt68sLi6W+/btk7quy82bN0sppbzzzjvlSy+9JKWUcsKECfL111+v3f+ZZ56RUkr57LPPynvuuUdKKeUDDzwgf/vb30oppXz//fclIIuLi09rKyBffvllKaWUjz32mHzggQeklFIOGTJErly5Ukop5bRp0+SUKVPO+dwzZsyQv//972vPkZWVJYuKiqSUUpaXlzf4mZ3Pv5miKM0HbJDnEGM7VA991m/XEAhEiMWslaHRqEl1dYTZs9dc0PPUTYEL8Mwzz5CTk0N+fj6HDh3i66+/Pu09/fv3Jzc3F4Bhw4axf//+Bo/9wx/+8LR9Vq9ezbhx4wAYPXo0KSkpDb5X0zTGjh0LwN13383q1avx+/1UVFTwne98B4AJEybw2WefnfO5TzVixAh+9rOf8dxzz9UW41AUpWNoVkAXQowWQuwSQnwjhPjVhWpUQyJRyYYNh2uD+QnRqMn69Ycv6LnqpsBduXIlK1asYO3atWzdupWhQ4dSU1Nz2nucTmftY13XicViDR77xH5195FNzKdzvqX1Gjr3qRYuXEhhYSGHDh0iNzeX0tLSJrVNUZTW1+SALoTQgWeBm4ArgPFCiCsuVMPqklJSFjDJGdoTu71+k+12jeHDM5p87ISEBKqqqhp93e/3k5KSgsfjYefOnXzxxRdNPldjRo4cyWuvvQZYpekaq0xkmmbtmPhf//pXRo4cSVJSEikpKaxatQqAl156qba3fi5Ovf49e/Zw9dVX8/jjj5Oens6hQ4eaelmKorSy5vTQhwPfSCn3SikjwCvADy5Ms+oLRSQ1EcnEB6/F53PUBnW7XcPnc/DooyOafOy0tDRGjBhBVlYWU6dOPe310aNHE4vFyM7OZtq0aeTn5zf5XI2ZMWMGy5cvJy8vj/fff58ePXqQkJBw2n5er5dt27YxbNgwPvnkE6ZPnw7An//8Z6ZOnUp2djZbtmypff5cfP/732fZsmW1N0WnTp3KkCFDyMrK4rrrriMnJ+eCXaeiKC2ryelzhRA/AkZLKf8l/v1PgKullJMbe09T0udKKTlSZhA1INWn4S+tYvbsNaxff5jhwzN49NER9O7dcD7yjiIcDqPrOjabjbVr1zJx4sQGKyX5fL52UUxapc9VlNbVGulzGxrAPe23gxDiPuA+gD59+pz3SQyTeEpcSYJbkNg7iT/8Ycx5H6c9O3jwID/+8Y8xTROHw8Fzzz3X1k1SFKUDak5ALwJ61/m+F3Dk1J2klIuARWD10M/3JDZd0C1ZwzTP/yZgRzFw4EA2b9581v3aQ+9cUZT2qzlj6F8CA4UQ/YUQDmAc8M6FaVZ9Qgh0vXMGc0VRlAulyT10KWVMCDEZ+BDQgReklNuaeKxO2/vubJp6z0VRlJbXrFwuUsr3gLMnNDkDl8tFaWkpaWlpKqi3c1JKSktLcblcbd0URVEa0ObJuXr16kVRUVFtXhKlfXO5XPTq1autm6EoSgPaPKDb7fZ6y+wVRVGUpulQuVwURVGUxqmAriiK0kmogK4oitJJNHnpf5NOJkQxcKCJb08HTq/60Lmpa744qGvu/Jp7vX2llF3OtlOrBvTmEEJsOJdcBp2JuuaLg7rmzq+1rlcNuSiKonQSKqAriqJ0Eh0poC86+y6djrrmi4O65s6vVa63w4yhK4qiKGfWkXroiqIoyhl0iIDemsWo25oQorcQ4lMhxA4hxDYhxJS2blNrEULoQojNQoi/tXVbWoMQIlkIsVQIsTP+731NW7eppQkhHo7/XH8lhFgihOh0md6EEC8IIY4LIb6q81yqEOIjIcTX8a8pLXHudh/QW7MYdTsRAx6RUl4O5AMPdPLrrWsKsKOtG9GKngY+kFIOBnLo5NcuhMgA/hW4UkqZhZV2e1zbtqpFvAiMPuW5XwEfSykHAh/Hv7/g2n1ApxWLUbcHUsqjUspN8cdVWP/JM9q2VS1PCNELuBn4U1u3pTUIIRKB64DnAaSUESllRdu2qlXYALcQwgZ4aKDKWUcnpfwMKDvl6R8Af44//jNwW0ucuyME9AzgUJ3vi7gIAhyAEKIfMBRY17YtaRXzgUcBs60b0koGAMXAf8eHmf4khPC2daNakpTyMDAHOAgcBfxSyuVt26pW001KeRSsThvQtSVO0hEC+jkVo+5shBA+4A3gISllZVu3pyUJIW4BjkspN7Z1W1qRDcgD/ktKORQI0EJ/hrcX8XHjHwD9gZ6AVwhxd9u2qnPpCAH9nIpRdyZCCDtWMF8spXyzrdvTCkYAtwoh9mMNqf2TEOLltm1SiysCiqSUJ/76WooV4Duz7wH7pJTFUsoo8CZwbRu3qbV8K4ToARD/erwlTtIRAnqrFaNuD4RVh+95YIeUcm5bt6c1SCn/XUrZS0rZD+vf9xMpZafuuUkpjwGHhBCXxZ+6Adjehk1qDQeBfCGEJ/5zfgOd/EZwHe8AE+KPJwBvt8RJ2rxi0dlcyGLUHcQI4CfAP4QQW+LP/Tpev1XpQaeDKQAAAIBJREFUXB4EFsc7KnuBn7dxe1qUlHKdEGIpsAlrNtdmOuGKUSHEEuB6IF0IUQTMAH4HvCaEuAfrF9udLXJutVJUURSlc+gIQy6KoijKOVABXVEUpZNQAV1RFKWTUAFdURSlk1ABXVEUpZNQAV1RFKWTUAFdURSlk1ABXVEUpZP4X32qby0L3g2yAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "colors = ['teal', 'yellowgreen', 'gold','blue']\n",
    "lw = 2\n",
    "plt.plot(x_plot, f(x_plot), color='cornflowerblue', linewidth=lw,\n",
    "         label=\"ground truth\")\n",
    "plt.scatter(x, y, color='navy', s=30, marker='o', label=\"training points\")\n",
    "\n",
    "for count, degree in enumerate([2, 3, 4, 5]):\n",
    "    model = make_pipeline(PolynomialFeatures(degree), Ridge())\n",
    "    model.fit(X, y)\n",
    "    y_plot = model.predict(X_plot)\n",
    "    plt.plot(x_plot, y_plot, color=colors[count], linewidth=lw,\n",
    "             label=\"degree %d\" % degree)\n",
    "plt.legend(loc='lower left')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Example 2"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Non Linear Regression"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Exercice 3"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "def weibull(t, k):\n",
    "    return(k *t**(k-1)* exp(-(t**k)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/ines_admin/anaconda3/lib/python3.7/site-packages/ipykernel_launcher.py:2: RuntimeWarning: divide by zero encountered in double_scalars\n",
      "  \n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "xs = np.linspace(0, 1.5, 10000)\n",
    "klist=[0.1,0.5,1,2,5]\n",
    "for k in klist :\n",
    "    y =[weibull(x,k) for x in xs]\n",
    "    plt.plot(xs, y, label=f'{k:.1f}');\n",
    "    plt.ylim(0,2.5)\n",
    "    plt.legend()\n",
    "    plt.title('Weibull Probability Density Function')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[1.1723611243600771,\n",
       " 0.3525660504648689,\n",
       " 0.1542593868666728,\n",
       " 0.034640211896295334]"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "k= 0.6\n",
    "xs= [0.1, 0.6, 1.4, 4]\n",
    "y =[weibull(x,k) for x in xs]\n",
    "y"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Estimate the parameter k"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.curve_fit.html"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [],
   "source": [
    "from scipy.optimize import curve_fit"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [],
   "source": [
    "def func(x,k):\n",
    "    fx = k*x**(k-1)*np.exp(-(x**k))\n",
    "    return(fx)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [],
   "source": [
    "x = np.array([0.1,0.6,1.4,4])\n",
    "ydata = np.array([1.17,0.35,0.15,0.03])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [],
   "source": [
    "popt, pcov = curve_fit(func, x, ydata)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Estimate of k =  [0.59341099]\n"
     ]
    }
   ],
   "source": [
    "print('Estimate of k = ', popt)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
